যেকোনো সফটওয়্যার ডেভেলপমেন্টে কোডের গুণগত মান নিশ্চিত করার জন্য ইউনিট টেস্ট গুরুত্বপূর্ণ। জেসুপ (JSoup) এর মাধ্যমে আপনি HTML ডকুমেন্ট পার্সিং এবং ডেটা এক্সট্র্যাকশন করেন। ইউনিট টেস্টের মাধ্যমে নিশ্চিত করতে পারেন যে আপনার কোড সঠিকভাবে কাজ করছে এবং কোনো ধরনের রিগ্রেশন হয়নি।
এই টিউটোরিয়ালে আমরা দেখব কীভাবে জেসুপ ব্যবহার করে HTML ডকুমেন্ট পার্সিংয়ের জন্য ইউনিট টেস্ট তৈরি করা যায়।
ইউনিট টেস্টের জন্য লাইব্রেরি
প্রথমেই, ইউনিট টেস্টের জন্য JUnit লাইব্রেরি ব্যবহার করা হয়, যা Java এ একাধিক টেস্ট রচনা করতে সহায়ক। Maven প্রোজেক্টে JUnit এবং JSoup যুক্ত করার জন্য নিচে প্রয়োজনীয় ডিপেনডেন্সি দেওয়া হলো।
Maven ডিপেনডেন্সি
<dependencies>
<!-- JSoup -->
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.15.3</version>
</dependency>
<!-- JUnit -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.7.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.7.1</version>
<scope>test</scope>
</dependency>
</dependencies>
JSoup দিয়ে ইউনিট টেস্ট তৈরি করা
ধরা যাক, আপনি একটি মেথড লিখেছেন যা একটি HTML ডকুমেন্ট পার্স করে, এবং কিছু নির্দিষ্ট উপাদান (যেমন, শিরোনাম, প্যারাগ্রাফ) এক্সট্র্যাক্ট করে।
উদাহরণ: HTML পার্সিং মেথড
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
public class HtmlParser {
public String parseTitle(String html) {
Document doc = Jsoup.parse(html);
return doc.title();
}
public String parseParagraph(String html) {
Document doc = Jsoup.parse(html);
return doc.select("p").text();
}
}
এই ক্লাসটি একটি HTML ডকুমেন্ট গ্রহণ করে তার শিরোনাম এবং প্যারাগ্রাফ টেক্সট এক্সট্র্যাক্ট করে।
ইউনিট টেস্ট তৈরি করা
এখন, এই HtmlParser ক্লাসের জন্য JUnit দিয়ে টেস্ট লিখে দেখি।
উদাহরণ: HtmlParser এর জন্য ইউনিট টেস্ট
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
public class HtmlParserTest {
@Test
public void testParseTitle() {
HtmlParser parser = new HtmlParser();
String html = "<html><head><title>Test Page</title></head><body><p>Hello World!</p></body></html>";
// Title পার্সিং টেস্ট
String result = parser.parseTitle(html);
assertEquals("Test Page", result, "Title should be 'Test Page'");
}
@Test
public void testParseParagraph() {
HtmlParser parser = new HtmlParser();
String html = "<html><head><title>Test Page</title></head><body><p>Hello World!</p></body></html>";
// Paragraph পার্সিং টেস্ট
String result = parser.parseParagraph(html);
assertEquals("Hello World!", result, "Paragraph text should be 'Hello World!'");
}
@Test
public void testParseEmptyHtml() {
HtmlParser parser = new HtmlParser();
String html = "<html><head><title>Test Page</title></head><body></body></html>";
// Empty HTML টেস্ট
String result = parser.parseParagraph(html);
assertEquals("", result, "Paragraph text should be empty");
}
}
কোড ব্যাখ্যা
testParseTitle(): এই টেস্টে, আমরাparseTitle()মেথডকে পরীক্ষা করছি। এখানে আমরা একটি সিম্পল HTML ডকুমেন্ট পাঠিয়েছি যেখানে<title>ট্যাগে"Test Page"আছে। আমরা আশা করছি যে মেথডটি সঠিকভাবে"Test Page"রিটার্ন করবে।testParseParagraph(): এই টেস্টে,parseParagraph()মেথড পরীক্ষা করা হচ্ছে। আমরা HTML ডকুমেন্টে একটি<p>ট্যাগে"Hello World!"পাঠিয়েছি, এবং টেস্টটি নিশ্চিত করবে যে মেথডটি সঠিকভাবে প্যারাগ্রাফ টেক্সট এক্সট্র্যাক্ট করছে।testParseEmptyHtml(): এই টেস্টে, আমরা একটি HTML ডকুমেন্ট পাঠিয়েছি যেখানে<p>ট্যাগটি খালি রয়েছে, এবং টেস্টটি নিশ্চিত করবে যে মেথডটি সঠিকভাবে একটি খালি স্ট্রিং রিটার্ন করছে।
টেস্ট চালানো
JUnit টেস্ট চালানোর জন্য আপনি IDE যেমন IntelliJ IDEA বা Eclipse ব্যবহার করতে পারেন, অথবা Maven কমান্ডলাইন থেকে চালাতে পারেন:
mvn test
এটি টেস্টগুলি চালাবে এবং পরীক্ষার ফলাফল দেখাবে।
সারাংশ
জেসুপ (JSoup) দিয়ে HTML ডকুমেন্ট পার্সিংয়ের জন্য ইউনিট টেস্ট তৈরি করা একটি গুরুত্বপূর্ণ প্রক্রিয়া। আমরা JUnit ব্যবহার করে আমাদের কোডের কার্যকারিতা নিশ্চিত করতে পারি। কোডের নির্দিষ্ট অংশ যেমন HTML ট্যাগ থেকে ডেটা এক্সট্র্যাক্ট করা, সহজেই টেস্ট করা যেতে পারে। এই পদ্ধতিতে আপনার কোডের গুণগত মান নিশ্চিত করা সম্ভব হয়।
Read more